Modeless drawing windows for cad system

ABSTRACT

Methods, apparatuses, systems, and software for proposing a resolution to a position conflict between a graphic object within a drawing sharing a portion of, up to all of, the one or more locations of other graphic objects, comprising the steps of: identifying a proposed new location of the graphic object within the drawing that will resolve the conflict; creating a reflection of the graphic object depicting the graphic object as it would appear at the proposed new location without moving the graphic object from its location; and determining whether the proposed new location will clear the conflict by not sharing a portion of the one or more locations, including embodiments directed to the use of reflections, alert/conflict bubbles, modeless drawing windows, and clipping planes.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. application Ser. No.12/718,716, filed Mar. 5, 2010, which: (i) claims the benefit under 35U.S.C. §119(e) of U.S. Provisional Appl. No. 61/157,460, filed Mar. 4,2009; (ii) is a continuation-in-part of U.S. application Ser. No.12/150,845, filed May 1, 2008; (iii) is a continuation-in-part of U.S.application Ser. No. 12/150,792 filed May 1, 2008, now U.S. Pat. No.8,368,717, issued Feb. 5, 2013, which claims the benefit under 35 U.S.C.§119(e) of U.S. Provisional Application No. 60/915,198, filed May 1,2007; (iv) is a continuation-in-part of U.S. application Ser. No.12/150,868, filed May 1, 2008, now U.S. Pat. No. 8,150,660, issued Apr.3, 2012, which claims the benefit under 35 U.S.C. §119(e) of both U.S.Provisional Application No. 61/072,734, filed Apr. 2, 2008, and U.S.Provisional Application No. 60/915,206, filed May 1, 2007; (v) is acontinuation-in-part of U.S. application Ser. No. 12/150,791, filed May1, 2008, now U.S. Pat. No. 8,224,628, issued Jul. 17, 2012, which claimsthe benefit under 35 U.S.C. §119(e) of both U.S. Provisional ApplicationNo. 61/072,734, filed Apr. 2, 2008, and U.S. Provisional Application No.60/915,164, filed May 1, 2007; (vi) is a continuation-in-part of U.S.application Ser. No. 12/150,867, filed May 1, 2008, now U.S. Pat. No.8,441,502, issued May 14, 2013, which claims the benefit under 35 U.S.C.§119(e) of both U.S. Provisional Application No. 61/072,734, filed Apr.2, 2008, and U.S. Provisional Application No. 60/915,163, filed May 1,2007; and (vii) is a continuation-in-part of U.S. application Ser. No.12/598,418, filed Oct. 30, 2009, now U.S. Pat. No. 8,732,599, issued May20, 2014, which is a U.S. national stage application under 35 U.S.C.§371 of International Application No. PCT/US08/05602, filed May 1, 2008,which claims the benefit under 35 U.S.C. §119(e) of U.S. ProvisionalApplication No. 60/915,195, filed May 1, 2007, each of which is herebyincorporated herein by reference in its entirety to be considered partof this specification.

This application is related by subject matter to that which is disclosedin the following commonly assigned application: U.S. application Ser.No. 14/294,524, filed on Jun. 3, 2014, and entitled “EDITABLE CLIPPINGPLANES FOR CAD SYSTEMS,” the entirety of which is hereby incorporated byreference.

TECHNICAL FIELD

This disclosure is directed to computer aided design (CAD) and, inparticular, to systems and methods for managing the processing ofmultiple CAD drawings.

SUMMARY

The present invention is directed to methods, apparatuses, systems, andsoftware for proposing a resolution to a conflict between a graphicobject within a drawing sharing a portion of, up to all of, the one ormore locations of other graphic objects, comprising the steps of:identifying a proposed new location of the graphic object within thedrawing that will resolve the conflict; creating a reflection of thegraphic object depicting the graphic object as it would appear at theproposed new location without moving the graphic object from itslocation; and determining whether the proposed new location will clearthe conflict by not sharing a portion of the one or more locations,including embodiments directed to the use of reflections, alert/conflictbubbles, modeless drawing windows, and clipping planes.

An embodiment includes a method of proposing a resolution to a conflictbetween a first three-dimensional graphic object having a first locationwithin a drawing and one or more other three-dimensional graphic objectshaving one or more second locations within the drawing, the conflictresulting from the first location sharing a portion of, up to all of,the one or more second locations, comprising the steps of: identifying aproposed new location of the first three-dimensional graphic objectwithin the drawing that will resolve the conflict; creating a reflectionof the first three-dimensional graphic object depicting the firstthree-dimensional graphic object as it would appear at the proposed newlocation without moving the first three-dimensional graphic object fromthe first location; and determining whether the proposed new locationwill clear the conflict by not sharing a portion of the one or moresecond locations.

An aspect of the embodiment is where the reflection is an exact,translucent depiction of at least the first three-dimensional graphicobject.

An aspect of the embodiment is where the reflection is an altered,translucent depiction of at least the first three-dimensional graphicobject.

An aspect of the embodiment is where the altered, translucent depictionprovides a modified dimension or shape compared to an original dimensionor shape of at least the first three-dimensional graphic object, andwhere the proposed new location is based on the modified dimension orshape.

An aspect of the embodiment further comprises the steps of: creating athree-dimensional resolution graphic object at a conflict location inthe drawing, the conflict location being near where the first locationshares the portion of, up to all of, the one or more second locations;and deleting the three-dimensional resolution graphic object when theproposed new location is determined not to share a portion of the one ormore second locations.

An aspect of the embodiment further comprises the steps of: creating athree-dimensional resolution graphic object at a conflict location inthe drawing, the conflict location being near where the first locationshares the portion of, up to all of, the one or more second locations,where the three-dimensional resolution graphic object is a translucentbubble having a first color; moving the three-dimensional resolutiongraphic object from the conflict location to a non-conflict locationnear the proposed new location when the proposed new location isdetermined to clear the conflict; and changing the first color of thetranslucent bubble to a second color.

An aspect of the embodiment further comprises the steps of: creating athree-dimensional resolution graphic object at a conflict location inthe drawing, the conflict location being near where the first locationshares the portion of, up to all of, the one or more second locations,wherein the three-dimensional resolution graphic object is a translucentbubble having a first color; and changing the first color of thetranslucent bubble to a second color if the proposed new location isdetermined to clear the conflict.

An aspect of the embodiment is where the step of identifying a proposednew location includes the step of receiving from a user one or moreobjective distances for moving the first three-dimensional graphicobject from the first location to the new location.

An aspect of the embodiment is where the one or more objective distancesinclude a first distance to resolve the conflict and a first additionaldistance along a first axis, a second distance to resolve the conflictand a second additional distance along a second axis, and a thirddistance to resolve the conflict and a third additional distance along athird axis, wherein the step of receiving includes the step ofdisplaying to the user a targeting screen including a movementcontroller and a targeting diagram, the movement controller providingthe user with manual inputs for setting the first distance, the firstadditional distance, the second distance, the second additionaldistance, the third distance and the third additional distance, thetargeting diagram providing a visual illustration of the manual inputsalong the first axis, the second axis and the third axis.

An aspect of the embodiment further comprises the step of displaying analert bubble at the proposed new location that indicates the one or moreobjective distances.

An aspect of the embodiment is where the first three dimensional graphicobject has a conflict location in the drawing near where the firstlocation shares the portion of, up to all of, the one or more secondlocations, further comprising the step of displaying a line from theconflict location to the alert bubble.

An aspect of the embodiment further comprises the step of providing amodeless drawing window that depicts an exact replica of an area aroundthe conflict, wherein the area around the conflict depicted within themodeless drawing can be viewed and moved by a user within the modelessdrawing window independent of a remainder of the drawing.

An aspect of the embodiment is where the user can change a magnificationof the area around the conflict depicted within the modeless drawingwindow independent of the remainder of the drawing.

An aspect of the embodiment is where the step of identifying a proposednew location includes the step of receiving from a user one or moreobjective distances for moving the first three-dimensional graphicobject from the first location to the new location, and wherein the oneor more objective distances include a first distance to resolve theconflict and a first additional distance along a first axis, a seconddistance to resolve the conflict and a second additional distance alonga second axis, and a third distance to resolve the conflict and a thirdadditional distance along a third axis, wherein the step of receivingincludes the step of displaying to the user a targeting screen includinga movement controller and a targeting diagram, the movement controllerproviding the user with manual inputs for setting the first distance,the first additional distance, the second distance, the secondadditional distance, the third distance and the third additionaldistance, the targeting diagram providing a visual illustration of themanual inputs along the first axis, the second axis and the third axis.

An aspect of the embodiment further comprises the step of providing amodeless drawing that represents at least a portion of an areasurrounding the first three-dimensional graphic object and the one ormore three-dimensional graphic objects, wherein the modeless drawing canbe viewed from one or more angles and at one or more magnifications.

An aspect of the embodiment further comprises the step of moving arepresentation of at least the first three-dimensional graphic objectdepicted within the modeless drawing from the first location to theproposed new location according to one or more objective distances alongone or more axes provided by a user.

An aspect of the embodiment is where the drawing includes a plurality ofthree-dimensional graphic objects, further comprising the step ofproviding a clipping plane that allows a user to select a bounded areawithin the drawing to view and edit one or more three-dimensionalgraphic objects among the plurality of three-dimensional graphic objectswithin the bounded area, wherein only the one or more three-dimensionalgraphic objects visible within the bounded area can be edited by theuser and no edit made within the bounded area affects anythree-dimensional graphic objects among the plurality ofthree-dimensional graphic objects not visible within the bounded area.

An aspect of the embodiment further comprises the steps of: selecting apoint of interest within the drawing; placing the bounded area aroundthe point of interest; contracting and expanding the bounded area aroundthe point of interest until the bounded area contains only a set of oneor more three-dimensional graphic objects among the plurality ofthree-dimensional graphic objects that the user wants to edit; andediting the set of one or more three-dimensional graphic objects.

An aspect of the embodiment is where the step of contracting andexpanding includes the step of providing the user with a click on anddrag slider.

An aspect of the embodiment is where the step of placing includes thestep of centering the bounded area on the point of interest.

An aspect of the embodiment further comprises the step of centering thedrawing visible to the user on the point of interest.

An aspect of the embodiment further comprises the step of locking aposition of the point of interest.

An aspect of the embodiment is where the step of identifying a proposednew location includes the steps of providing one or more remote userswith access to the drawing and permitting the one or more remote usersto collaboratively determine the proposed new location.

An aspect of the embodiment is where the step of identifying a proposednew location further includes the step of receiving one or moreobjective distances provided by the one or more remote users and usingthe one or more objective distances to determine the proposed newlocation, and wherein the one or more objective distances include afirst distance to resolve the conflict and a first additional distancealong a first axis, a second distance to resolve the conflict and asecond additional distance along a second axis, and a third distance toresolve the conflict and a third additional distance along a third axis,wherein the step of receiving includes the step of displaying to the oneor more remote users a targeting screen including a movement controllerand a targeting diagram, the movement controller providing the one ormore remote users with manual inputs for setting the first distance, thefirst additional distance, the second distance, the second additionaldistance, the third distance and the third additional distance, thetargeting diagram providing a visual illustration of the manual inputsalong the first axis, the second axis and the third axis.

An embodiment includes a method of proposing a resolution to a positionconflict between a first three-dimensional graphic object and a secondthree-dimensional graphic object within a drawing, comprising the stepsof: identifying a set of coordinates for a proposed new location ofeither the first three-dimensional graphic object or the secondthree-dimensional graphic object that will resolve the positionconflict, including the steps of receiving one or more objectivedistances provided by a user and using the one or more objectivedistances to determine the proposed new location; and creating a replicaof either the first three-dimensional graphic object or the secondthree-dimensional graphic object in the drawing that illustrates how thefirst three-dimensional graphic object or the second three-dimensionalgraphic object will look if moved to the proposed new location.

An aspect of the embodiment further comprises the steps of: creating analert bubble within the drawing near an area of the position conflict;and associating a label with the alert bubble indicating the one or moreobjective distances.

An aspect of the embodiment further comprises the step of creating aline in the drawing from the position conflict to the alert bubble.

An aspect of the embodiment is where the one or more objective distancesinclude a first distance to resolve the conflict and a first additionaldistance along a first axis, a second distance to resolve the conflictand a second additional distance along a second axis, and a thirddistance to resolve the conflict and a third additional distance along athird axis, wherein the step of receiving includes the step ofdisplaying to the user a targeting screen including a movementcontroller and a targeting diagram, the movement controller providingthe user with manual inputs for setting the first distance, the firstadditional distance, the second distance, the second additionaldistance, the third distance and the third additional distance, thetargeting diagram providing a visual illustration of the manual inputsalong the first axis, the second axis and the third axis.

An aspect of the embodiment further comprises the step of providing amodeless drawing window that depicts an exact replica of an area aroundthe position conflict, wherein the area around the position conflictdepicted within the modeless drawing can be viewed and moved by the userwithin the modeless drawing window independent of a remainder of thedrawing.

An aspect of the embodiment is where the user can change a magnificationof the area around the position conflict depicted within the modelessdrawing window independent of the remainder of the drawing.

An aspect of the embodiment is where the modeless drawing includes atleast a portion of the first three-dimensional graphic object and atleast a portion of the second three-dimensional graphic object, andwherein the first three-dimensional graphic object or secondthree-dimensional graphic object depicted in the modeless drawing windowis moved based on the one or more objective distances to illustrate howthe first three-dimensional graphic object or the secondthree-dimensional graphic object would appear in the proposed newlocation.

An embodiment includes a method of proposing a resolution to a positionconflict between a first three-dimensional graphic object and a secondthree-dimensional graphic object within a drawing, comprising the stepsof: identifying a set of coordinates for a proposed new location ofeither the first three-dimensional graphic object or the secondthree-dimensional graphic object that will resolve the positionconflict, including the steps of receiving one or more objective valuesprovided by a user and necessary to resolve the position conflict andusing the one or more objective values to determine the proposed newlocation; providing a modeless drawing that represents an area aroundthe position conflict and includes at least a portion of the firstthree-dimensional graphic object and at least a portion of the secondthree-dimensional graphic object, wherein the modeless drawing can beviewed from one or more angles and at one or more magnifications; andcreating and displaying a replica of either the first three-dimensionalgraphic object or the second three-dimensional graphic object in themodeless drawing that illustrates how the first three-dimensionalgraphic object or the second three-dimensional graphic object will lookif moved to the proposed new location.

An aspect of the embodiment further comprises the step of moving thefirst three-dimensional graphic object depicted within the modelessdrawing from an existing location to the proposed new location accordingto one or more objective values.

An embodiment includes a method of proposing a resolution to a positionconflict between a first three-dimensional graphic object and a secondthree-dimensional graphic object within a drawing, comprising the stepsof: identifying a set of coordinates for a proposed new location ofeither the first three-dimensional graphic object or the secondthree-dimensional graphic object that will resolve the conflict,including the steps of receiving one or more objective values providedby a user and using the one or more objective values to determine theproposed new location; providing a clipping plane that allows the userto select a bounded area within the drawing to view an area of thedrawing around the position conflict without editing any graphic objectin the drawing not depicted within the area; and creating and displayinga replica of either the first three-dimensional graphic object or thesecond three-dimensional graphic object in a modeless drawing thatillustrates how the first three-dimensional graphic object or the secondthree-dimensional graphic object will look if moved to the proposed newlocation.

An aspect of the embodiment further comprises the steps of: selecting apoint of interest within the area; placing and centering the boundedarea on and around the point of interest; contracting and expanding thebounded area around the point of interest in response to a userinitiated movement of a slider displayed to the user until the boundedarea contains only one or more desired graphic objects that the userwants to edit; and editing the one or more desired objects.

BACKGROUND

Embodiments of the invention are directed to computer aided design (CAD)and, in particular, to systems and methods for managing the processingof multiple CAD drawings. CAD software is often used by designers,architects, engineers and the like to prepare a two-dimensional (2D) CADdrawing or three-dimensional (3D) model or models representing differentphysical objects, such as a mechanical device, a bridge, a building, anautomobile, and airplane, etc. The more complicated the object beingillustrated, the more complicated the drawings illustrating that object.For example, with respect to a building, the drawing will include thestructural components of the building, including the beams, columns,walls, floors, windows, doors, etc. (the “frame”), as well as the HVAC,plumbing, electrical, fire sprinkler, and other components.

Most CAD designs are generated as a result of collaborative anditerative processes. For example, with respect to a building design,after the frame is designed by the architects and structural engineersto create a base CAD drawing of the building structure, that basedrawing is then sent to other designers or subcontractors to add theircomponents to the design, including HVAC ducting, plumbing layouts,electrical chases, fire sprinkler lines, etc. The same process isgenerally followed for civil engineering or with more complicateddesigns of other objects, such as tool making, automobile and airplanesdesigns, etc.

During the design process, the various designers have multiple optionsfor creating CAD designs for their specific portions of the project. Inthe simplest case, all the designers can utilize the same CAD programused to create the base drawing. However, in many instances, thedesigners utilize different third-party programs that are specific totheir particular field, which requires data to be exported from the basedrawing to the third party program so the design can be created usingthe third-party program and then the new data is imported from thethird-party program back into the base drawing.

Alternatively, a stand-alone product with its own 3D intelligent designengine, such as AutoSPRINK® by M.E.P.CAD, Inc. (assignee of the presentinvention), could be used to both create the base drawings and to addsubcontract designs, such as fire sprinkler systems. Such programs aretypically able to run on widely available personal computers runningpopular operating systems like Microsoft® Windows®. Programs such asAutoSPRINK are also capable of importing or exporting different types ofCAD files.

With multiple designers participating in the design and review processeson various versions of the CAD drawings for a particular object, anumber of problems can arise with respect to managing modifications,identifying and/or resolving conflicts, the reconciliation of 2D and 3Ddrawings, coordinating associations between related drawings and thelike. For example, in the process of adding M.E.P. trade (“mechanical,electrical, plumbing” and other trade) designs to a base building orstructural drawing, or revising a drawing in some other way, it iscommon for conflicts to arise between different objects within thatdrawing (e.g., objects that share the same physical space). Moreover,oftentimes when one object is moved to address a particular conflict,another conflict may be created.

Furthermore, to expedite the design of subcontracted components for aparticular project, different subcontractors often work on theirmodifications to a building design in parallel with one another. Theseparallel modified CAD drawings are then combined to create a completedesign. While faster in some ways, this parallel process can createconflict problems, especially for large drawings. Furthermore, eventhough a subcontractor may only be responsible for a handful ofconflicts, that subcontractor would typically be sent the entire drawingwith all the different subcontractor conflicts along with a video and/ora conflict report, and be expected to find their conflicts and resolvethem. As a result, a first conflict resolution meeting or design reviewwill often be followed by several additional conflict resolutionmeetings as the correction of one set of conflicts can generate otherproblems. Hence, extensive time and resources are often expended toidentify and correct conflicts with CAD drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a main dialog box for a clean-up utility inaccordance with the present invention;

FIG. 2 is an illustration of an external reference resolution dialog boxin accordance with the present invention;

FIG. 3 is an illustration of a block and attribute utility in accordancewith the present invention;

FIG. 4 is an illustration of a hatch utility in accordance with thepresent invention;

FIG. 5 is an illustration of a line utility in accordance with thepresent invention;

FIG. 6 is an illustration of a dimension utility in accordance with thepresent invention;

FIG. 7 is an illustration of a text utility in accordance with thepresent invention;

FIG. 8 is an illustration of a layer utility in accordance with thepresent invention;

FIG. 9 is an illustration of a wizard profile builder utility inaccordance with the present invention;

FIG. 10 is a flow chart illustrating a clean-up wizard process inaccordance with the present invention;

FIG. 11 is an illustration of a compare zoom feature in accordance withthe present invention;

FIGS. 12 a and 12 b are illustrations of a compare utility andcomparison options in accordance with the present invention;

FIG. 13 is an illustration of a batch load compare feature in accordancewith the present invention;

FIG. 14 is an illustration of the compare utility of FIGS. 12 a and 12 bfurther illustrating conversion options in accordance with the presentinvention;

FIG. 15 is an illustration of a three dimensional drawing illustratingalert bubbles and reflections in accordance with the present invention;

FIG. 16 is an illustration of the display and export options for thealert bubbles of FIG. 15;

FIG. 17 is an illustration of an alert control utility in accordancewith the present invention;

FIG. 18 is an illustration of a parts tree in accordance with thepresent invention;

FIG. 19 is an illustration of the targeting features of the alertcontrol utility of FIG. 17 in accordance with the present invention;

FIG. 20 is an illustration of a beam conversion utility in accordancewith the present invention;

FIG. 21 is an illustration of a 3D column utility in accordance with thepresent invention; and

FIG. 22 is an illustration of an alert control utility with an alternatetargeting feature in accordance with the present invention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The present invention is directed to methods, apparatuses/systems, andsoftware for proposing a resolution to a conflict between a graphicobject within a drawing sharing a portion of, up to all of, the one ormore locations of other graphic objects, comprising the steps of:identifying a proposed new location of the graphic object within thedrawing that will resolve the conflict; creating a reflection of thegraphic object depicting the graphic object as it would appear at theproposed new location without moving the graphic object from itslocation; and determining whether the proposed new location will clearthe conflict by not sharing a portion of the one or more locations,including embodiments directed to the use of reflections, alert/conflictbubbles, modeless drawing windows, and clipping planes.

The features of the systems and methods will now be described withreference to the drawings summarized above. Throughout the drawings,reference numbers are re-used to indicate correspondence betweenreferenced elements. The drawings, associated descriptions, and specificimplementation are provided to illustrate embodiments of the inventionand not to limit the scope of the disclosure.

In addition, methods and functions described herein are not limited toany particular sequence, and the blocks or states relating thereto canbe performed in other sequences that are appropriate. For example,described blocks or states may be performed in an order other than thatspecifically disclosed, or multiple blocks or states may be combinedinto a single block or state.

Where this specification refers to the system's characteristicsdescribed herein, note that the same description applies to relatedmethods, apparatus, and computer programs. In its presently preferredembodiment, the invention is a software program written in AutoLISP(although it could readily be written in VisualBasic and/or C++) thatoperates in a stand-alone fashion or in conjunction with the AutoCADplatform by Autodesk, Inc. on any appropriate computer system. Thepresent invention is not limited to the AutoCAD platform and could beutilized in conjunction with any CAD program, such as, for example,REVIT, VISIO, MICROSTATION, ARCHICAD, BRICSNET, TURBOCAD, INTELLICAD,CATIA or the like. As utilized in conjunction with AutoCAD, onceinstalled, the present invention would be incorporated into the standardmenu bar for the AutoCAD program, so that it was readily accessiblewithin the AutoCAD system.

Furthermore, the present invention is not limited to any particular typeof design project. Although the preferred embodiment of the invention isdescribed in the context of building design projects, the presentinvention is not limited to use in building design and could be usedwith any design of any object on any CAD system or third party add-onproduct associated with a CAD system, such as, for example, roads,bridges, buildings, automobiles, aircraft, combinations of the same orthe like, and/or with other CAD media, such as art, science, graphicscombinations of the same or the like.

The term “object” as used herein is a broad term and is used in itsordinary sense and refers to, without limitation, a fundamental unit forcreating a CAD drawing. For instance, objects can comprise graphicobjects, such as a line, arc, circle, any 2D or 3D entity, text,combinations of the same or the like. Objects can also comprisenon-graphic objects, such as attributes, building information modeling(BIM) data, metadata, extensions, combinations of the same or the like.

The term “block” as used herein is a broad term and is used in itsordinary sense and refers to, without limitation, any internal databaseassembly and/or collection of one or more graphic objects and/ornon-graphic objects.

The term “drawing” as used herein with respect to CAD drawings is abroad term and is used in its ordinary sense and refers to, withoutlimitation, any collection of one or more blocks that make up at least aportion of a design of a structure, article, vehicle, item, combinationsof the same or the like.

The term “external reference,” or “X-ref,” as used herein is a broadterm and is used in its ordinary sense and refers to, withoutlimitation, a file, drawing, design or other data structure thatcomprises an assembly of one or more objects referenced by anotherdrawing. For example, an X-ref may not be directly accessible oreditable to the user of the referencing (e.g., host) CAD drawing untilthe X-ref is inserted or bound into the drawing (e.g., thereby becominga block of the CAD drawing).

The term “entity” as used herein is a broad term and is used in itsordinary sense and refers to, without limitation, any drawing, block,object or other distinct, individual unit usable in CAD design.

Most engineers and designers have experienced the problems associatedwith opening and working with complex drawings. Designers and engineersoften develop a drawing project with a main drawing and a large numberof subordinate or support drawings, referred to as X-Ref's or externalor cross-reference drawings. Before work can be performed on the maindrawing these X-Ref's may have to be integrated or bound to the maindrawing. Unfortunately, binding all of the X-Ref's can have the effectof cluttering the main drawing with all kinds of excess or unimportantelements and layers. The users are then burdened with hours of“clean-up” work to trim the main drawing down by binding necessaryX-Ref's, integrating layers and removing unnecessary information.

In order to improve a designer's ability to work with a CAD drawing,such as the main CAD drawing of a large building, or to export/importthat drawing to and from a program like AutoSPRINK, it is firstnecessary to clean-up the CAD drawing in a way that will reduce thecomplexity of the CAD drawing and make it easier for the designer to addand modify their design components. Clean-up or reduction of the CADdrawing's database file(s), and therefore the CAD drawing, occurs in theorder of entity (a geometric object) exposure.

An entity could be a line, a circle, or any other graphic object withvector parameters, such as a line, start point (x,y,z), end point(x,y,z), etc., as well as a block or an X-Ref. A block is an internaldatabase assembly of one or more objects, i.e., a line, arc, text, etc.,to one entity, while an X-Ref is an external assembly of one or moredata objects, i.e., blocks, blocks with graphic or non-graphicattributes, lines, arcs, text, etc., to one entity. Non-graphic entitiescan also contain other information, extensions, and applicationintrusion detection systems (AppIDS) that are not necessary to thesubcontract designer. For example, a door (generally a block) might beattached to a graphic attribute, such as an arc representing the swingof the door, and non-graphic data, such as data defining the materialsof the door, or its type or model. Hence, there is a hierarchy toexposing geometric objects in the database. For example, an X-Refexposes blocks, and blocks expose attributes, lines, circles, arcs,etc., and attributes contain text.

In order to clean-up or reduce a CAD drawing without damaging thedrawing, yet retain all of the information that will be of importance tothe subcontract designer, it is first necessary to resolve (expand orexpose) entities in the appropriate hierarchy, before any entities areremoved or deleted. X-Ref's are resolved to become blocks (by expandingthe X-Ref's to expose their sub-entities), followed by blocks (internalreferences that may also contain nested blocks and attributes, which maycontain nested blocks and attributes, etc.). Blocks with attributes areresolved last. Some attributes contain text that may be useful to theuser, while other text is not. For example, a block that represents aline may also contain attributes that identify the properties of a beam.When this block is expanded, pertinent data regarding the size of thebeam might be exposed, as well as text that is only pertinent to thebeam manufacturer, and can therefore be removed. As each hierarchicallayer of entities is resolved, or once all of the X-Ref's, blocks andblocks with attributes have been resolved, the process of retaining,removing or altering all of the specific entities can be initiated.

FIG. 1 is a screen shot representing a main dialog box 10, whichprovides a simple interface for performing the main tasks of theinvention. As illustrated in FIG. 1, a number of selectable buttons areillustrated for accessing or performing various functions. For example,the Q-Save and Save As buttons allow a user to do a quick save of theopen drawing, or to save that drawing under a different name/location,respectively. In some cases, the buttons have a number written to eithertheir left or right side. When that number is “0” the button is inactiveand the text written on the button is only lightly visible. When thenumber is greater than “0” the button is active and the text written onthe button is darkened. Irrespective of whether a button illustrated inFIG. 1 or any of the drawings is active or inactive, the presentdescription will treat the button as active and discuss the functionsand attributes associated with the buttons in detail.

Clean-up tasks are performed starting with the wizard function,illustrated in the upper one-third of FIG. 1, and then by selecting thetasks represented by the buttons listed below the wizard function. Thesebuttons are laid out in the process that the user should use them toresolve all entities in the drawings. For example, X-Ref's must beresolved first, so the top button in the left column of buttons in FIG.1 is the X-Ref's button 12. An X-Ref is an external reference file thatis only referenced by a current drawing. An X-Ref is similar to a block,but is not accessible (editable) to the user of the current drawinguntil it is inserted into the current drawing (whereupon it becomes ablock).

Once the X-Ref's are converted to blocks, the blocks can then beexpanded (exploded). The user would continue in this fashion, movingfrom button to button to the bottom of the left column. Once all of thetasks represented by the buttons in the left column had been completed,the user would move to the top of the right column and proceed downward.The “Help,” “Purge” (occasionally needed to remove an item from thedatabase that has already been removed from a drawing, such as an emptylayer, unused block, or other unused items) and “Exit” options buttonsat the bottom of FIG. 1 can be performed at any time. The Exit functionexits the current utility or function and returns the user to the mainsystem.

As noted above, since X-Ref's are not usually manageable by the currentdrawing (the drawing being resolved), at least in AutoCAD, the X-Ref'smust first be inserted into the drawing in order for the objects in theX-Ref's to become manageable (i.e., gripped and/or edited) within theparent drawing, which is accomplished through the X-Ref utility of thepresent invention. The X-Ref utility either inserts the X-Ref as a blockinto the current drawing or deletes the X-Ref. The present inventionconverts X-Ref's to blocks, where possible, because it can manage blockseasier than X-Ref's. When an X-Ref is converted to a block, the elementsor objects of the X-Ref belong to the block, which belongs to thecurrent drawing, and can be manipulated within the current drawing.

As illustrated in FIG. 1, there is one (1) X-Ref's in the drawing, asreflected by the “1” next to the X-Ref's utility button 12. This oneX-Ref's must be resolved and reduced to zero (0) X-Ref's before the usercan continue the cleaning/reduction process. When the X-Ref's utilitybutton 12 has been selected, the X-Ref's are gathered and sorted as totheir hierarchy and availability. Some X-Ref's may not be available,i.e., because they are missing or detached from some reason, even thougha reference to the X-Ref's exists in the drawing and may result in alarger number of X-Ref's being reported in FIG. 1. If an X-Ref is notavailable, it must still be fixed in the X-Ref utility, as furtherdescribed below in order to reduce the X-Ref's listed in FIG. 1 to zero.

FIG. 2 is a screen shot of the X-Ref resolution dialog box 14 of theX-Ref utility. Unlike FIG. 1, which only lists a single X-Ref, FIG. 2lists numerous X-Ref's so all of the features of the X-Ref utility canbe discussed herein. Each of the X-Ref's attached to the current drawingthat exist in the specified search path (i.e., can be found), are listedin the top pane 16. The X-Ref's listed in the top pane 16 includesstand-alone X-Ref's and nested X-Ref's (X-Ref's with other X-Ref'sattached), but the top pane 16 does not draw any distinction betweenstand-alone X-Ref's and nested X-Ref's because both can be found and thecharacteristics of the X-Ref's can be determined.

The bottom pane 18 lists X-Ref's that are attached to the currentdrawing, but either cannot be found in the specified search path (a filename and location is provided, but that file cannot be located at thatlocation) or does not exist. If the X-Ref is a stand-alone X-Ref, thenthe bottom pane 18 indicates that it is attached to “This Drawing.” Ifthe X-Ref is nested, then the bottom pane 18 provides the search pathfor that X-Ref. For example, the X-Ref named “TYP BR1” indicates thatthe search path is “C:\Contracts\Fountainbleau\Cad 02-02-07\Tower\TYP .. . .”

The first X-Ref's listed in the top pane 16 and bottom pane 18 arehighlighted because they would be the first X-Ref's in either pane to beprocessed by default. The user could select other X-Ref's for processinginstead by simply mouse clicking on a desired X-Ref. The buttons listedabove and immediately below top pane 16 give the user various processingoptions for any X-Ref's in the top pane 16 and any X-Ref's in the bottompane that include nested X-Ref's. The “Open” button will open theselected X-Ref in another editor. This enables the user to look at whatis in the file, to detach X-Ref's that are attached to the selectedX-Ref, to delete the file, etc. The “Detach” button allows the user toremove the selected X-Ref from the current drawing. The “Isolate” buttonallows the user to turn off all of the layers associated with all otherX-ref's in the current drawing, except those layers associated with theselected X-Ref. This allows the user to view the elements (objects)associated with only the selected X-Ref. The “Undo” button undoes anaction that changes the database of the current drawing and is onlyeffective at undoing Detach, Insert, Insert All, Bind and Bind Allcommands. The “Undo” button further serves to erase the memory of thewizard function (to be described in detail below), which is recordingeach and every step taken by the user for future use.

The “Insert” button inserts the selected X-Ref into the drawing, thuschanging the X-Ref (which cannot be managed) into a block (which can bemanaged). The “Insert All” button does the same thing, but for all ofthe X-Ref's, not just the selected one. The “Bind” button is used tobind a selected X-Ref into the drawing, thereby changing the X-Ref intoa block. “Bind All” would do the same thing as the Bind function, butfor all X-Ref's. Although the Insert and Bind functions sound identical,there is a difference in the way an X-Ref is handled from one functionto the other. When an X-Ref is inserted, any blocks or layers in thedrawing that are in the X-Ref are appended to the table for thecorresponding block that is created. When binding an X-Ref, the tableobjects (layers, blocks, etc.) that are found in the X-Ref are precededwith a field name of the X-Ref. For example, if there was a layer named“WALLS” in an X-Ref named “XYZ” and the Bind function was used, thelayer would be named “XYZ$0$WALLS.” If the Insert function was used, thelayer's name would remain “WALLS.”

The buttons immediately under the bottom pane 18 are used to addressunfound X-Ref's. The “Fix” button removes all references that do notexist from the selected X-Ref, relative to the current drawing, but doesnot remove the X-Ref itself “Fix All” does the same thing for allmissing X-ref's. The Fix and Fix All buttons do not insert the missingX-Ref's into the drawing and do not repair the missing X-Ref's. Rather,they attempt to re-attach the X-Ref in some manner so it can then bedetached from the current drawing. The “Detach” button removes theselected missing X-Ref completely from the current drawing, and “DetachAll” does the same thing for all missing X-Ref's. All four commandfunctions can be quickly used to resolve all missing X-Ref's to zero.

Once all of the X-Ref's have been resolved, the user would proceed toresolving the blocks by selecting the “Blocks” button 20 in FIG. 1. Whenthe Block button 20 is selected, the program gathers and sorts theblocks based on their hierarchy and availability, including all of theblocks in the parent drawing and nested in other blocks. Once the blockshave been gathered, they are sorted alphabetically and listed in dialogbox 22 of the Block and Attribute Utility illustrated in FIG. 3. BlockName pane 24 displays the blocks in the current drawing, with nestedblocks proceeded by “>>” immediately following the parent block (none ofthese nested blocks are shown in FIG. 3). It is not unusual for as manyas eight to ten nested blocks to be listed under a parent block. In thepresent embodiment of the invention, all blocks are intelligentlyhandled to insure that all of the elements related to a block are placedon the element layer of that block and not the parent block layer orlayer—0—when the blocks are expanded (exploded).

The Attributes pane 26 lists the attributes associated with a selectedblock in the block pane 24. Attributes are usually a cluster of fieldsassociated with a block or part of a block. An attribute that containsone field of displayable information typically has three subfields: aTag; a Prompt; and, a Value. The Tag is the name of the field. ThePrompt is the text displayed at the AutoCAD command line, which directsor prompts the AutoCAD user to specify information pertaining to theblock. The Attribute Value provides additional detail for a Tag. Whenthe “Explode” command within AutoCAD is utilized on a block, the AutoCADprogram does not usually place all of the elements in that block on theproper layer. As a result, attributes associated with that block can belost. Likewise, using the AutoCAD “Explode” command on an attributewould typically leave the user with only the name of the field in theattribute. For example, an attribute with a Tag of “ROOMNO” would becomeexactly “ROOMNO,” and any other information, such as a Value, in thesubfields would be lost. Thus, if a block named “ROOMID” was insertedthroughout the drawing with Tag information of “ROOMNO” and Values of“RM#2111” and “RM#2112,” the Values would be lost and simply become“ROOMNO”.

The buttons listed above the Block Name pane 24 pertain to the blocks inthe Block Name pane 24. Since any action taken on a block can affect theattributes of that block, if a block selected in the Block Name pane 24has attributes, the “Delete All” and “Expand All” buttons are disabled,which forces the user to process the attributes in the Attributes pane26 and make proper decisions about the available information associatedwith the attributes. Once the attributes are processed, the blockbuttons are re-enabled.

To expand a block means to explode that block within the currentdrawing, i.e., reveal all of its constituent parts within the drawing.It is necessary to expand a block in order to get a better understandingof what is included in that block (in case it is to be kept or deleted,or further dealt with, in the case of a nested block) and to make use ofall of the information that was included in the block in the drawing ifit is kept.

The middle grouping of buttons, between the Block Name pane 24 and theAttributes pane 26, only apply to the blocks listed in the Block Namepane 24. The “Reduce Number of Blocks to 1” button deletes all of theselected blocks except for one of the selected blocks, and only if theblocks selected have multiple insertions with all of the sameparameters. This function is useful when a number of blocks shareidentical information and exploding all of those blocks would result inthe duplication of that identical information within the current drawingby the number of blocks (each identical object stacked on top of eachother identical object). This way, one block is kept with the necessaryinformation, and the rest are deleted.

The “Delete Block” button deletes the selected block. If the selectedblock has attributes, the Delete Block button is disabled until theattributes are processed. The “Expand Block” button expands or explodesthe selected block. If the selected block has attributes, the ExpandBlock button is disabled until the attributes are processed. The “View”button presently writes the block to a phantom name in storage and thenopens the block in a new editor so the user can view the content of theblock before expanding or deleting the block. In a preferred embodiment,a preview function would accomplish the same result. When viewing ablock, the system is set by default to automatically zoom to thelocation of the block within the drawing, versus requiring the user tomanually search for and locate the block. The “Turn AutoZoom On/Off”button allows the user to toggle the auto zoom feature on or off beforeusing the view function.

The buttons under the Attributes pane 26 only apply to the attributes.If a block in the Block Name pane 24 is highlighted and that blockcontains attributes, those attributes will be listed in Attributes pane26. For example, the block “Bathtub-1q-flat-1” selected in the BlockName pane 24 contains a number of attributes that are listed in theAttributes pane 26. These attributes contain information about thematerial used to make the bathtub, its model number, the manufacture ofthe bathtub and its trade name. The attributes also include a Typeindicator, such as whether the attribute text is preset (PRE), needs tobe verified (VER), is a constant (CON) or is invisible (INV).

The “Remove Invisible Text” button deletes all attributes with anyinvisible type of text. Invisible text is text that is only displayedunder certain conditions, but is otherwise displayed as empty boxes orrectangles. It can be very time consuming to isolate and deleteinvisible text using a CAD drawing program. The present inventionenables invisible text to be easily deleted, which may be desirable whenthe user knows that the invisible text will not be needed for theirpurposes. As certain other aspects of the present invention utilizeinvisible text when automating the conversion of two-dimensional beamsand columns into three-dimensional beams and columns, great care shouldbe exercised when using the remove invisible text function.

The “Remove Selected Text” button removes the value of text from theselected attribute. When a block corresponding to the selected attributeis expanded, the text contained in the removed value will be blank. Forexample, the plumbing contractor may not need to keep information aboutthe material used to make the tub and its product and trade name—themodel number might be sufficient. In such a case, the user would want toremove all of the text except for the model number, so the unwanted textwould be selected, and Remove Selected Text button would be selected.Since different block/attribute information is important to differentusers, the “Delete Block and Att's” button enables the entire block andcorresponding attributes (and any information they may contain) to bedeleted, while the “Expand Block and Att's” button allows the block andall information in the corresponding attributes to be expanded into thecurrent drawing.

Referring back to FIG. 1, the “AEC” button 28 would be used next. TheAEC button 28 is only active when the drawing being processed containsAEC objects. AEC objects are proxy objects created by other AutoDESKproducts, such as Architectural Destktop (ADT). Hence, AEC button 28 isreserved for AEC and other proxy objects generated by other AutoDESKproducts. In the drawing, these proxy objects are only displayed if theextension file (object enabler) for these objects is present (loaded).If the required extension file (generally an .arx or .dll file) is notloaded, then the basic elements (lines, circles, meshes, etc.) that makeup the object are collected under their respective definition buttons(lines button 38, Arcs/Circles button 44, etc.) and processedaccordingly. If object enablers are loaded, AEC button 28 will break anyAEC objects present into blocks, thereby causing the user to return tothe Blocks button 20 to further process those objects.

The “Custom” button 30 operates in a similar manner to the AEC button28. Custom objects are objects defined by non-AutoCAD drawing systems,such as CAD-Duct, a 3D drafting software package by MAP Ltd. Customobjects are typically defined by an extension file such as .arx, .dll,.dbx, etc. These custom objects are complex objects generally made up ofpolygon meshes or 3D faces. For example, a ball can be represented by apolygon mesh by defining the fulcrum point of the sphere and a radius ofthe sphere. The smoothness of the ball would depend upon the resolutionof the mesh. A mesh is like a window with four panes, whereas a 3D faceis like a window with a single pane. The shape of any object can bedefined by each connection point of each pane by giving each connectionpoint x-, y- and z-coordinates. If custom objects, are present in thedrawing, then Custom button 30 will break the custom objects into blocksfor processing. If the object enabler for a custom object is notpresent, the basic elements forming that object are collected andprocessed accordingly.

The “Hatching” button 32 of FIG. 1 causes all hatch patterns in thecurrent drawing to be automatically gathered and the Hatch Utilitydialog box 34 of FIG. 4 to be opened. A hatch is an object that appliespatterns to user defined areas, usually defined by enclosed boundaries.As shown in FIG. 4, the user is presented with a list of all of thehatches used in the drawing in the Hatch pane 36. When a hatch patternwithin the Hatch pane 36 is selected, such as “WOOD_(—)5,” the hatchutility automatically zooms to the selected hatch pattern with thecurrent drawing and flashes the pattern (or highlights it in some othervisible way) to enable the user to discern the hatch from other objectsand make a decision about what to do with the hatch. This is animportant function because hatches are sometimes used for physicalobjects (roofing tiles) versus designating the composition of materialin an area (wood, gravel, sand, etc.). Where it may be desirable todelete a hatch related to the composition of materials, it may not bedesirable to delete a hatch that defines a physical object.

If the user knows that none of the hatch patterns in the current drawingare needed, the user can select the “Delete All” button at the top ofthe Hatch pane 36. Selecting the “Expand All” button will cause allhatch patterns listed in Hatch pane 36 to be exploded into the objectsthe hatch patterns contain, such as lines, circles, arcs, etc. Thebuttons below the Hatch pane 36 give the user the ability to expand ordelete selected hatch patterns, or to select a hatch pattern and thenexpand or delete any other hatch patterns that are the same as theselected hatch pattern. In the preferred embodiment of the invention,each hatch pattern and the coordinates for that pattern in the currentdrawing are saved for use by the wizard utility, to improve the clean-upaccuracy of subsequently processed drawings. Also in the preferredembodiment, the user would be given an additional button from which tochose, a “Modify” button. This function would enable the user to changethe hatch pattern of a selected hatch pattern to a different hatchpattern from a selected list of hatch patterns. Thus, rather than deletean odd hatch pattern that was used in the drawing, the user would havethe option of modifying it.

Activation of the “Lines” button 38 of FIG. 1 causes the drawing to besearched for duplicate lines. Duplicate lines are lines that arevisually positioned on top of other lines of exactly the same type.Duplicate lines are often created when other users have manipulated thedrawing or copied or traced various areas of the drawing withoutcleaning up the extra lines they created after the fact. These linesincrease the size of the drawing file and can cause problems whensubsequent work is performed on the drawing.

When the Lines button 38 is selected, a Line Utility dialog box 40 ofFIG. 5 appears, presenting the user with two primary options; the“Remove Duplicate Lines” button or the “Search Lines” button. If theRemove Duplicate Lines button is selected, the drawing is searched forduplicate lines and any duplicate lines the system finds are deleted. Todetermine if a line is a duplicate, the system starts by gripping a lineand scanning the drawing array for any vectors that are geometricallyequal to the line gripped. If the gripped line is duplicated, it isdeleted and the system moves on to the next line. The Search Linesbutton operates in a similar fashion, but allows the user to make aline-by-line determination, which can be helpful for finding lines thatare not duplicate lines, but are buried behind other lines.

The Polylines button 42 of FIG. 1 works in the same fashion as the Linesbutton 38, in that it can be used to explode or separate polylines intoseparate segments, which can then either be left in the drawing ordeleted. A polyline is a complex line that is formed of many segmentsand which may be left open or closed by connecting its end point to itsstarting point. As polylines are much less likely to be duplicated, andeven when they are they take up much less space, so as an alternativeembodiment it may not be necessary to even include a Polylines button inthe preferred embodiment of the present invention.

The Arcs/Circles button 44 does not require any further userinteraction. Rather, upon selection the drawing is searched forduplicate arcs and circles and the duplicates are removed. A duplicatearc or circle is defined as two arcs or two circles having the sameproperties and fulcrum point (x, y, z location).

The Dims button 46 of FIG. 1 enables the user to set consistent formatsfor different dimensions throughout the drawing and prepares dimensionsfor import into other programs that may be used in conjunction with thepresent system. In FIG. 6, the Dimension Utility box 48 is shown withdrop down menu selections for Layers, Units, Arrow Heads, Arrow Size andText Size. The Layer menu contains a list of layers in the drawing,allowing the user to select the target layer for where dimensions shouldbe placed. The Units menu contains a list of units of measurement forthe properties of the dimension. The options are “Architectural,”“Decimal,” “Engineering,” “Fractional” and “Scientific.” For example,architectural units could all be set to use closed arrow heads, andarrows and text of a specific size. Other types of units could be giventhe same or different settings. The Zoom window button allows the userto momentarily exit the Dimensions Utility box 48 to maneuver to an areaof the drawing. The Zoom Extents button zooms to the outer exterior ofthe drawing. Reconfiguring all of the units enables the user to focus onjust particular units of interests and facilitates faster clean-up ofthe drawings.

The Mtext button 50 and Text button 52 of FIG. 1 effectively operatetogether. The Mtext button 50 enables the user to instantly convert anyMtext (multi-line text) to a standard text line. For example, amulti-line, Unicode-based text would be gripped and exploded, whilemaintaining all properties except the Unicode format by removing theUnicode and placing the text into a single line test, which is easier toprocess in the Text Utility dialog box 54 of FIG. 7. Convertingmulti-line text in this fashion has the added benefit of allowing thesystem of the present invention to be able to “read” the text so as toretrieve 3D element information for automated 2D to 3D conversion, asfurther described below.

When the Text button 52 of FIG. 1 is selected, dialog box 54 of FIG. 7is opened and the user is presented with a number of options. The DeleteDuplicate Text button deletes text that has been written on top of thesame text. It operates in the same manner as the Remove Duplicate Linesbutton previously discussed, i.e. it looks for text objects (versuslines) with the exact same properties, such as string, text style, andinsertion point.

The Delete Text button provides a different option. When the Delete Textbutton is selected, another dialog box is opened that lists all of theunique text lines in the drawing. One or more of these text lines canthen be selected to delete the selected items. This dialog box alsoincludes an auto-zoom feature that allows the user to zoom to the pointin the drawing where the text appears so the user can make an educateddetermination as to whether the selected text should be deleted or leftalone. The Change Text button allows the user to alter a selected stringof text and the Delete Like Text button prompts the user to select asingle text object and have the drawing searched for any identical text.When identical text is found, the user is presented with a “Yes” and“No” dialog to determine if the identical text should be deleted or leftalone.

The Text Styles button 56 of FIG. 1 displays all of the defined textstyles that are used in the drawing, as well as one or more additionaltext styles that were not utilized in the drawing, and gives the userthe option of selecting one of these text styles. When a text style isselected, the user is then given the option of converting some or all ofthe text styles in the drawing to the selected text style.

The four layers buttons, Lyrs On button 58, Lyrs Off button 60, LyrsFroze button 62 and Lyrs Locked button 64, are primarily informationalin terms of telling the user how many layers exist in a drawing and thestate of each layer. Selecting the Lyrs Off button 60, the Lyrs Frozebutton 62 or the Lyrs Locked button 64 will cause the layers supervisedby the selected button to reverse their state. For example, selectingthe Lyrs Froze button 62 would cause any layer that is currently frozento be unfrozen.

Selection of the Lyrs On button 58 would open the Layer Utility dialogbox 66 of FIG. 8, which displays all of the layers in the currentdrawing in the Current Drawing Layers (CDL) pane 68 and provides theuser with a number of useful functions. The two selectable options underthe CDL pane 68 are “X-ref Filter” and “Color By Element.” The X-reffilter option causes any layers that are referenced by the prefix of anexternal reference to be masked. For example, the X-ref named “ELEVATOR01-20 WALLS” would be masked, so that the layer entitled “ELEVATOR 01-20WALLS|A-CLNG-HEAD” would simply be listed as “A-CLNG-HEAD.” By maskingthe X-ref, it is possible to treat all of the layers with the same name,such as A-CLNG-HEAD, in the same manner. Thus, an operation performed onA-CLNG-HEAD would also be performed on any other layers of the samename, irrespective of their different X-ref's.

The Color By Element option maintains a color by the object flag of thatobject. When these objects are then imported into another program, suchas AutoSPRINK, the default setting of that object will be Color ByElement. The Pick Layers button returns the user to the drawing editorand prompts the user to select objects. As objects are selected, theobjects are saved to a unique list. When the user returns to the LayerUtility 66, the layers that are in the list are highlighted and the useris given the option of using the remaining buttons of the utility toreach a desired result. The Send Selected To button is operative wherethere are multiple selections in the CDL pane 68 and only a singleselection in the AP Target Layers (AP) pane 70. Selection of this buttonwould send any selected layers in the CDL pane 68 to the targeted layerin the AP pane 70. Any remaining empty layers are then purged from thedrawing and removed from the CDL pane 68.

The Delete Selected button deletes all objects in the layers selectedwithin the CDL pane 68. The Isolate Selected button turns off all layersexcept for the selected layers in the CDL pane 68. The Step Throughbutton starts at the first layer in the CDL pane 68 and turns off alllayers except the selected layer. Subsequent selection of the StepThrough button steps the user to the next layer in the CDL pane 68 andturns off all other layers, etc. The Turn All Lyrs On button turns onall of the layers remaining in the CDL pane 68.

When work is completed with the four layers buttons, the clean-upprocess is completed. If a wizard was running during the clean-upprocess, many of the functions or steps taken by a user to modify thedrawing will have been recorded for future reference or use incleaning-up additional related drawings. To better understand the wizardfunction, reference is now made to FIGS. 1, 9 and 10. The Wizards module70 of FIG. 1 is comprised of five components, the option list 72 andfour function buttons. The option list 72 includes a listing of all ofthe wizards that are available for use with the current drawing. Once awizard has been selected from the list 72, that wizard would then bedisplayed within the window of the list while the user is cleaning-upthe current drawing.

To create a wizard from scratch for the current drawing, the user wouldselect Create Wizard Profile button 74. When button 74 is selected, theuser is directed to another dialog box prompting the user to enter awizard name. The user could create any name, or use a name based onpreviously created wizards, a list of which is provided to the user inthe dialog box. Once a name has been selected, the user is directed toanother dialog box that prompts the user to select or enter the name ofthe source of the drawings. The source of the drawing would typically bean architectural or engineering firm, or an individual. This dialog boxwould also include a list of previous sources of drawings used for otherclean-up processes, to make the task of selecting a source easier. Oncethe source of the current drawing has been established, the wizard wouldbe saved and added to the option list 72.

Source information for drawings is important when using the Build WizardProfile button 76, which gives the users the option of searching otherwizards, based on their source, and importing instructions from otherwizards into the wizard being built. For example, with reference to FIG.9, when button 76 of FIG. 1 is selected, the user is directed to theWizard Builder dialog 78, which prompts the user to select a drawingorigin from a list of all available sources, based on previously createdwizards, in Origin pane 80. When an origin is selected, the user wouldclick the Search Selected Profile button to get a listing in the Resultspane 82 of all of the available instructions previously created relatedto that source. The instructions are shown to enable the user todetermine if the selected source includes the types of instructions theywant to use to build a new wizard. If the selected source includes thedesired instructions, clicking on the Append Compilation To CurrentProfile button would accept the instructions and append them to thewizard profile being created. This same process could be repeated withone or more other sources so that a number of different instructionscould be appended to the wizard being built. Once the wizard was builtand stored, it would be added to option list 72 of FIG. 1.

To run a wizard profile, the user would select the wizard from thoselisted in options list 72 and click on the Run Wizard Profile button 84.A wizard profile dialog box would then appear giving the user the choiceof running all of the tasks listed in the main dialog box 10 of FIG. 1,or just select ones of those tasks. The process of running a wizardprofile is further illustrated with respect to FIG. 10. When the WIZARD86 is initiated, the DRAWING FILE 88 is accessed and opened, and as theuser performs different function or steps to modify the drawing, thewizard records each of these steps. The manner in which the wizardrecords and prioritizes recorded functions aids in the subsequentthorough cleaning of revised or other drawings.

As the user is required to address X-ref's first, the wizard doeslikewise with X-REF 90. There are three options for the resolution ofX-ref's: detach (delete), insert and bind. The logic assigned to thesefunctions from a programming perspective (controlled by the AutoCADvariable “BINDTYPE”) is “−1” for detach 92, “0” for bind 94, and “1” forinsert 96. Binding an X-Ref is separate from inserting. Binding an X-Refcreates the layer contained in the X-Ref with a prefix in the followingformat: XREFNAME0$0LAYERNAME. Utilization of binding, however, cancreate hundreds of layers, which can have undesirable results whensubsequently using the Layer utility, although use of the X-Ref filteroption described above can help. The logic assignments and any layernames that are created would then be recorded to the wizard.

The BLOCK 98 includes similar options that are recorded with the blockname and the action taken, such as delete or explode. AEC blocks wouldbe treated the same as blocks, although their additional geometry wouldalso be stored. Customer blocks would be treated the same as AEC blocks.The HATCH 100 stores the pattern and the points and whether the hatchwas erased or saved. When future drawings are scanned by the wizard, thewizard will grip a hatch and search the profile for the exact samepattern and points. The hatch will then be resolved based on whathappened in the first drawing clean-up and whether the hatch was erasedor saved. Line, polyline, arc and circle functions are not recorded bythe wizard. Rather, these functions are handled by the main dialog box10 during the normal clean-up process.

A DIMENSION 102 is processed so as to disassemble it from the blockwithin which it is contained. Any Unicode formatting is removed from thetext and the line and arrows are divided into two entities. Whiledimensions are presently processed as a whole group, an alternativeembodiment would be to enable the user to select and alter individualdimensions. Mtext functions are not recorded by the wizard and arehandled in the same manner as in the main dialog box 10 of FIG. 1. InFIG. 10, TEXT 104 functions are recorded into the wizard, with stringdeletions or changes being recorded. TEXT STYLE 106 functions arerecorded, as are LAYER 108 functions, i.e., merging a layer or deletinga layer. The wizard function substantially reduces the amount of effortand time required to clean-up drawings that are from the same source orthat are similar to a previously cleaned-up drawing.

Once a drawing has been cleaned-up, it is desirable to compare thatcleaned-up drawing to prior versions of the same drawing to get anunderstanding of what has been changed from one revision or delta toanother. While drawings that have not been cleaned-up can also becompared to prior drawings, the unnecessary information cluttering anunclean drawing can make it difficult for a user to visually discernwhere changes have or have not been made. The system of the presentinvention provides a compare utility that greatly simplifies the processof understanding and working with revisions, identifying where changeshave occurred, and highlighting those revisions by colorization in ahighly efficient and user friendly manner.

Naturally, the compare feature of the present invention is also capableof comparing any two drawings, even where one is not a revision of theother. When the system detects that two drawings to be compared are notsimilar, it will warn the user and if the user accepts the warning, thenthe system will compare the dissimilar drawings. As noted below withrespect to FIGS. 12 a and 13, the Batch Load compare feature of thepresent invention can be useful when comparing a large number of bothsimilar and dissimilar drawings. For example, when a user is attemptingto determine the degree of commonality between the drawings of differentfloors of a multistory building, the ability to batch compare a largenumber of drawings, including those which are dissimilar, can be veryhandy. In this manner, the one or two dissimilar floors out of 30 or 40similar floors can be picked out very quickly.

The compare utility allows the user to view any changes that have orhave not been made from one version of a CAD drawing to another. Anyrevisions that have or have not been made can be readily viewed todetermine what the modifications are or are not and whether thosemodifications, or lack thereof, are relevant to the user's work on thecurrent drawing. It also contains a preview feature that allows the userto view all changes to the drawing prior to accepting or importing thedrawing into other CAD formats.

The compare utility also has the ability to zoom in on a filtered set ofdrawing elements/objects and to continue filtering down into the drawinguntil it researches the simplest drawing component of each individualcomponent group or object. This allows the user to automatically zoom inand view a first selected group of components, and then zoom in and viewa smaller section or components within that first selected group, andthen zoom in again and view an even smaller set of components, etc. Atany time during this process, the user can select components and captureinformation about those components to include those components andinformation in a bill of materials, scheduling program, etc. Thisfeature is of particular importance in BIM (Building InformationManagement) projects.

For example, as illustrated in FIG. 11, the compare zoom feature 150 mayhave first been used to zoom in on any new walls 152 that might havebeen added to a revised drawing. This would be done by selecting walls154 from the list of selected features to locate and then hitting the OKbutton. The system would then zoom in on any new walls 152 that havebeen added, which are illustrated in a different color (or highlightedin some other way) than unchanged objects in the revised drawing. Inorder to prepare pricing information for the added walls, or to revisescheduling to accommodate the added walls, the system could then captureinformation related to all of the changes involved in adding the walls,including all parts that might have been included within the walls, suchas the wood or metal studs and slats, the sheetrock, the attachmentscrews, the door frames, the doors and all door components, includinghinges, door knobs, etc.

Once the information on the changes has been collected, a bill ofmaterials can be automatically generated and sent to the appropriateprogram or system for processing the bill of materials. Likewise, if theuser comparing the drawings happens to be the hardware manufacturer forthe door systems, the user can continue to filter down with the zoomcommand to just capture the door hardware for all of the added doors inthe revised drawing and nothing else.

An additional feature of the compare utility is its ability to determineand display changes in square footage based on changes between the olddrawing and the new drawing. As with other features, changes in squarefootage can be determined on the macro-level (the entire building) or onany of a number of selected micro-levels. For example, if the user onlywanted to determine the change in square footage on a level of abuilding, this could be determined by comparing that level of thebuilding from the old drawing to that level of the building from the newdrawing. Likewise, one room or set of rooms could be compared betweenthe two drawings to determine square footage changes between the old andnew drawings. Altered square footage could also include the amount ofsquare footage in the drawing that includes revisions or changes and thetotal variance between the old and new drawings. Other variances arealso reported, such as X-Ref's attached to the old versus new drawing,X-Ref's inserted into the old versus new drawings, the status of variouslayers at the time the comparisons were completed (i.e., whether alllayers were included, whether frozen layers were included, whetherlocked layers were included, etc.). Obviously, many more variancefeatures could be included as well.

To initiate the process, as illustrated in FIG. 12 a, the DrawingCompare Utility dialog box 157 prompts the user to select the basedrawing (such as the original drawing or a prior revision drawing) andthe currently revised drawing, and then make some choices about optionsto be applied to the comparison. The options include:

(1) All Layers On, which results in all layers being turned on in eachdrawing (if unchecked, only layers that are turned on in each drawingwould be compared, with turned off layers being ignored);

(2) Thaw Layers, which thaws any frozen layers so they can be includedin the comparison (otherwise frozen layers are ignored); and

(3) Un-Lock Layers, which un-locks any locked layers, which wouldotherwise be ignored.

As previously noted, in addition to these drawing options, the dialogbox 157 contains a program option to “batch load” up many drawings(similar and dissimilar) or a complete set of both base and revisiondrawings to allow the user to simply toggle through numerous drawings oran entire set of revised drawings—one at a time. The ability to batchcompare several drawings and have the system automatically perform theoperation without further user input is a very useful feature. Even moreso because as illustrated in FIG. 13, the Batch Load function 160 allowsthe user to place hundreds of drawings (up to 1024) in the old drawingfile list 162 and hundreds more (again up to 1024) in the reviseddrawing list 164, in any order, and the system will automatically findall of the similar drawings to compare to one another and perform thecomparison functions automatically. If any drawing in the new drawinglist is missing a corresponding revised drawing, or for any reason adrawing could not be compared, the system will provide an error messagelist.

A number of conversion options can also be selected by the user as shownin FIG. 12 b. The comparison options 158 can also be used for assistingin the conversion of objects from any type of CAD or other drawingprogram, such as AutoCAD, into any type of third party program, such asAutoSPRINK. The X-Ref's option gives the user the ability to insertX-Ref's that are attached to the drawings to be compared (which is thedefault setting), or to ignore X-Ref's in the drawings to be compared.The blocks option gives the user the ability to retain blocks as blocks,or to cause the blocks to be expanded (exploded) into the drawings astheir individual elements. Since proxy objects may be useful to someusers when comparing results, the Acad proxy option either comparesAutoCAD proxy objects (when checked) or ignores them, while the customproxy option gives users the same option for non-AutoCAD proxy objects.

The 3D solids and 2D solids options give the user the ability to comparesuch objects (when checked) or to ignore them. Likewise, checking theremaining boxes either cause the specified objects i.e., dimensions,meshes (including polygons and polyface meshes), regions and hatches, tobe compared or ignored.

Once all of the options have been selected, the process begins byplacing the base drawing file into an editor that one-by-one reads allof the objects or entities (such as lines, mlines, 3D solids, hatches,etc.) and their properties, converts all of the graphical objects totext, and places the text in an array. The text and properties are thenwritten out to storage through a compressor that truncates theproperties as much as possible without losing data. When all of thedifferent types of objects have been processed, the editor is purged andthe revised drawing is inserted for processing in the same manner.

The text files generated from the compressor are then opened by objecttype, i.e., line, circle, etc. Lines from the base drawing file are readand placed in an array, while lines from the revised drawing file areread and placed in a separate array. The two arrays are then comparedand the results are drawn from the editor. This process is repeated forall entities or objects in the drawing files. Once all of the entitiesor objects have been compared and drawn from the editor, the comparedrawing is saved according to the user defined settings and options ofFIGS. 12 a and 12 b. The original makeup (layer structure) of the oldand new drawings is stored to the compare drawing. This allows thecompare drawing to maintain the original (old) and modified (new)settings, which can be visually and digitally discerned through thevarious options of the Compare Manager, set forth in FIG. 14.

In addition to storing the layer structure, several types of non-objectdata are also stored, such as the status of X-Ref's, blocks and othersettings. As previously noted, this enables variance square footmeasurements to be calculated, but also allows information to be storedabout the user, the work station they were using, the date, time andother settings. The user also has the option to sending the comparedrawing (as a digital plot, bitmap, JPEG or other file) to other partiesalong with notes and other details that will enable the receiving partyto perform a task based on the information they were sent, which isuseful in the BIM context. Compare files can also be assigned tospecific directories and those directories can then be assigned orshared with interested parties.

The dialog box for the Compare Manager 210 is generated once the comparedrawing is complete and gives the user several options for viewingchanges in the compared drawing. Dialog box 210 contains a Quick Viewoption that enables the user to display either the base (old) drawing orthe revised (new) drawing before doing the comparison. The next sectionof dialog box 210 lists three sets of Color Options check boxes, eachset positioned next to a colored box. The top Check box 212 correspondsto deleted/removed objects, the middle Check box 214 corresponds toadded/revised objects, and the bottom Check box 216 corresponds tounchanged objects or the background. The color of the colored boxes thatcorrespond to Check boxes 212, 214 and 216 can be changed by the user toany color desired, although users would generally want to use threedifferent colors.

The Check box 212 gives the user the option to show objects that mayshow as having been deleted in the revised drawing, objects that havebeen deleted in the revised drawing, or only the layers that containobjects that do not appear in the revised drawing. To hide objects thatmay show as having been deleted or that do not appear in the reviseddrawing, the user would simply uncheck the Deleted Check box 212. If theobjects are to be shown, the objects will be displayed using theselected color. Alternatively, the system could be set up to isolate anddisplay the deleted objects or include the deleted objects inbackground, using the selected color versus hiding them.

Check box 214 gives the user the option to isolate and display onlyobjects that do not appear in the base drawing (i.e., have been added tothe revised drawing) or the layers that contain objects that do notappear in the base drawing. If the objects are to be shown, the objectswill be displayed using the selected color. Alternatively, the systemcould be set up to display the objects using the selected color or tojust include them in background (basically as unchanged), versus hidingthem, i.e., unchecking the Check box 214 (for Added) will hide objectsthat do not appear in the base drawing. Likewise, Check box 216 givesthe user the option to display only the objects or layers with objectsthat were not revised (i.e., common to both drawings), or to hideobjects that were not revised (i.e., hide background). If the objectsare to be shown, the objects will be displayed using the selected color.Alternatively, the system could be set up to display the objects usingthe selected color or to just include those objects in background,versus hiding them to isolate deleted or added items as explained above.The user is also given the option of selecting any color from a widevariety of colors.

By showing only the objects that concern the user, such as objects thatwere added, or objects that were removed, or even the objects that wereunchanged, and by showing them in a selected color, it is possible forthe user to visually focus on the different aspects of the compareddrawings that interests them the most. Likewise, being able to hideselected new, removed or common elements can speed the review process aswell. Hence, in a complex drawing with thousands of objects, but only afew changes, the user could remove all of the unchanged (background)objects from view and just focus on the changes. Or, if many things werechanged, the user could just focus on what was not changed. Obviously,the manner in which the compare utility can be used to help a user focuson just the items of interest is unlimited and could be structureddifferently from that described above.

Once the review process has been completed, the user can return theentire drawing to its original default colors for all objects using theColor Restore section of dialog box 210. Check box 218 would be selectedto return deleted objects to their original colors, Check box 220 wouldbe selected to return added objects to their original colors, and Checkbox 222 would be selected to return unchanged objects to their originalcolors. Different selected combinations of check boxes, between Checkboxes 212, 214 and 216 and 218, 220 and 222, can be used to create alltypes of different effects. For example, the user can choose theoriginal Default Background or Unchanged Items color by checking box222, while showing the Deleted and/or Added items in a user specifiedcolor by checking boxes 212 and 214, or any combination thereof. Checkbox 224 can be used to display any Revision Clouds that may be in thedrawing, or conversely to hide them by not checking the box. If norevision clouds exist in the drawing, the user has the option of addingthem by selecting check boxes 226 or 228. Check box 226 is used to addrevisions clouds for deleted objects and check box 228 is used to addrevisions closure for added objects. Unchecking the check boxes 226and/or 228 will remove the revision clouds from the drawing.

As previously discussed, the Zoom section of dialog box 210 includes anumber of zoom-related features. Deleted button 230 and Added button 232enable the system to automatically zoom to any added or deleted objectsin the drawing. Selection of either button 230 or 232 opens a pop-up boxthat includes either all of the deleted or added objects, respectively.Selection of any item within this pop-up box would cause the system toautomatically zoom to that revised item. To manually zoom to an area inthe drawing, the user would select the Window button 234. Pressing thisbutton will produce a user definable window that can be placed anywherein the drawing, and once placed, the system will zoom to the windowboundary. Conversely, by pressing the Extents button 236, the systemwill zoom-out to the full extents of the drawing.

In addition to focusing on deletions, additions and background objects,with so many different designers working on a common set of drawings, itis to be expected that conflicts will occur between the objects added,changed or left unchanged by the different designers. Conflicts (alsocalled “alerts”) include pipes running through beams, columns and HVACducts, conduits or cable trays running through pipes and ducts, etc.Although it has been known in the art to identify a conflict or alert,to provide information about where a conflict occurs, and to provide theconflict direction (a measurement of the amount of conflict between twoobjects), the present invention takes the conflict recognition andresolution process to an entirely new level.

Although the present invention was developed for use in the context offire sprinkler design, it has applicability to any trade involved in theCAD building design process, or with respect to any type of CAD drawingsystem, whether the system is being used to design roads, bridges,buildings, automobiles, aircraft, etc. By selecting an appropriatecommand, the system will perform a check of all of the objects within adrawing to determine if any conflicts exist between any objects. In thecontext of a building design, each conflict would be detected and canthen be designated by trade. For example, the steel trade (the columnsand beams) would be designated separately from HVAC, plumbing,electrical, fire sprinkler, or any other trade. To visually highlighteach conflict, an area surrounding the conflict would be surrounded by athree-dimensional translucent alert bubble element that would permit aclear view of the obstructed situation, while drawing attention to theconflict.

A clipping plane is similar in some respects to a modeless drawingwindow in that it allows a user to isolate a certain portion of adrawing to a visibly limited area and allows the user to test out ormake changes to objects within this visibly limited area. Generally,changes made within a modeless drawing window have no effect on theunderlying drawing from which the modeless drawing window was created.Rather, the modeless drawing window allows the user to test out changes,such as moving different graphic objects and rearranging graphic objectsto see how those changes would work out if implemented in the underlyingdrawing. In contrast, a clipping plane is a bounded area that is createdwithin the drawing itself that allows the user to make changes to thedrawing directly when those changes are made within the bounded area.However, the clipping plane also allows the user to visually isolategraphic objects within the bounded area such that only objects that arevisible within the bounded area can be changed within the drawing. Theoperation of clipping planes is further explained below.

Within a large, complex drawing, there will be many visible and hiddengraphic objects within any view of the drawing. For example, in adrawing displaying a fire sprinkler drop close to an HVAC duct, anelectrical wiring tray, plumbing pipes and building structural members,it might be difficult to attempt to work on changes to the firesprinkler drop without also changing other graphic objects that werevisible around the fire sprinkler drop, or that were hidden and aroundthe fire sprinkler drop. To create a clipping plane and isolate certaingraphic objects, such as the fire sprinkler drop, the user would pick apoint of interest within the drawing, such as a single point on or nearthe fire sprinkler drop, and lock that point so it remains stable(locking a point is optional). The user could then center the drawingaround that point of interest, although centering on the point ofinterest is also optional.

Once the point of interest had been selected, the user could then clickon and drag a slider of a slider bar (not shown) to contract or expandthe size of the bounded/bounding box centered on the point of interest.The bounding box need not have visible lines defining the box. The usercould contract the size of the bounding box to just the point ofinterest, or expand it from the point of interest to include those fewgraphic objects around the point of interest or a much larger number ofgraphic objects. Once size of the clipping plane had been selected, theuser could make changes within the clipping plane, with those changesonly affecting graphic objects in the drawing that were visible withinthe bounding box. Hidden objects, objects outside of the bounding box,or objects note otherwise visible within the clipping plane would not beaffected by the changes made by the user. For example, going back to theearlier example, by creating the clipping plane around the firesprinkler drop, the user could select a point of interest around thefire sprinkler drop, change components of the drop, shorten or lengthenit, etc., and not have those changes affect anything not shown withinthe clipping plane at the time and not intended to be changed by theuser.

Each alert (conflict) bubble could then be assigned to a specific tradeand colored, as appropriate, to a specific color designated to thattrade (for example as illustrated in FIG. 16, which illustrates userdefinable trade and trade color configuration 330). Multiple alertbubbles could be used to represent the same conflict when the conflictinvolves more than one trade. For example, steel trade conflicts couldbe dark grey, with HVAC conflicts light grey, plumbing conflicts darkblue, electrical conflicts yellow, fire sprinkler conflicts orange, andother trades in various colors.

FIG. 15 shows a portion of a building design including column 300, beams302, 304 and 306, HVAC duct 308, pipe 310 and wiring cable tray 312, aswell as a set of alert bubbles. The alert bubbles illustrate the variousstages of the conflict resolution process for a number of differentobjects depicted in FIG. 15. For example, alert bubble 316 depicts aconflict between duct 308 and beam 302. Alert bubble 316 is assigned tothe HVAC designer and colored accordingly. To resolve this conflict, theHVAC designer would need to move duct 308 and pipe 310 down along they-axis by a conflict/interference distance identified by the alertbubble 316. The reflections 318 and 320 depict the new proposedpositions of the duct 308 and pipe 310, respectively. Reflections arediscussed in greater detail below. Since moving the duct 308 toreflected position 318 and pipe 310 to reflected position 320 wouldresolve the conflict, a resolution/alert bubble 322 is created (andcolored differently) to depict the proposed resolution. However, sincethis proposed resolution would create a new conflict between thereflection 320 and the cable tray 312, an additional alert bubble 324 iscreated to reflect the new conflict.

Obviously, conflicts could be identified with alert bubbles using manydifferent color schemes or even identified in many other ways, such aswith different shaped alerts (other than bubbles), text associated witheach alert, etc., and different identifying schemes could be employed indifferent industries, such as civil engineering, aeronautics,automotive, etc. Alerts/alert bubbles could also be identified based onother factors, such as the level of importance associated with theconflict, or all of these factors (trade, importance, etc.) could becombined into a single identification scheme.

In addition to identifying a factor associated with a conflict, eachalert bubble is associated with detailed information regarding theconflict it represents. Each alert bubble has a corresponding AlertControl dialog box 336, as illustrated in FIG. 17 that would be openedwhen the alert bubble was selected, and that includes an identificationof the alert (conflict ID), the exact location of the conflict, thestatus of the conflict (i.e., whether or not it had been resolved), thedate the conflict was created, the trade involved, the trade contractorresponsible for the object involved in the conflict, images illustratingthe conflict from one or more angles and resolutions, various notesassociated with the alert, and resolution information. The ability toadd any number of detailed notes to an alert bubble is of particularvalue because it gives each user of the system the ability to provide(and to receive) additional details and explanations regarding aconflict, such as why it occurred or was necessary, or even how it couldbe resolved without creating other conflicts. All notes and resolutiontags, as well as vertical, horizontal, top of steel and finish floordimensions are logged and can be printed along with full color screenshots illustrating the alert bubbles.

Most importantly, all of this detailed information for an alert bubblecan be attached to and exported with that alert bubble for import intoeach trades' design drawing, regardless of the CAD format they areusing. Thus, voluminous copies of the drawings including the conflictdepictions do not need to be sent. Likewise, neither do fly-throughmovies of the drawings with the conflicts depicted need to be sent, nordo text based descriptions of where the conflicts are located. Asillustrated in FIG. 16, the user can select exactly what information isto be attached and exported by checking the appropriate boxes in theExport Options section 332. This information includes different types ofnotes, various dimensions, different types of alert labels, alert and/orresolution bubbles, and additional comments, which can be included bytyping them into the Export Tag area 334. As noted, either an alertbubble can be sent, or a resolution bubble, or both.

If an alert bubble is sent, it would typically be in the appropriatetrade color, and would include its resolution location and the x-, y-,z-coordinates that track from conflict to resolution, so the tradedesigner can see where the conflict was and how it is proposed to beresolved. If both an alert bubble and a resolution bubble are sent, suchas alert bubble 320 and resolution bubble 322 of FIG. 15, the alertbubble is placed at the point of conflict and the resolution is placedat the point of proposed resolution, with a line drawn between the twothat includes the x-, y-, z-coordinates for the resolution distance.

This enables all of the alert bubbles to be sent to the other designers,or only those alert bubbles that are relevant to each designer. When thedesigners import these alert bubbles into their design drawings, thealert bubbles appear in either 2D or 3D space (as desired by thedesigner) with each of the colored bubbles positioned at the exactlocations of the conflicts/resolutions. The designers can then begin theprocess of resolving the conflicts represented by each bubble, utilizingthe detailed information contained in each alert (or resolution) bubble.If the user decides to export all alert bubbles, each trade can easilyascertain the alert bubbles pertaining to his particular trade by thecolor of the alert bubble assigned to his trade of company.

Alert bubbles can also be selected and accessed remotely (outside of thedrawing), as well as by the system parts tree 350 illustrated in FIG.18. The parts tree 350 keeps a live record of actions taken on eachalert/conflict and records location (that can also be used as theconflict ID), interference/conflict distance, color (as noted above, analert bubble may start out red, then change to an appropriate color whenassigned to a particular trade, and turn green when resolved), andstatus (either open or resolved when closed). Clicking on any alert inthe parts tree 350 will cause the program to zoom to the correspondingalert in the main drawing.

The resolution of conflicts is also significantly improved through theuse of reflections of conflicted elements and resolution bubbles. Areflection can take two forms. One is an exact translucent/transparentreplica of an object that is created upon the initial movement of theobject during the conflict resolution process and allows the user toview the affect of any proposed change. As illustrated in FIG. 17, AlertControl dialog box 336 includes an Alert Resolution Proposal Manager 338that allows the user to test different possible resolutions of theconflict by moving different objects before actually making anypermanent changes to the drawing. For more exacting control, and todetermine precise clearance tolerances, the Alert Control dialog box 336includes a Targeting tab 340 that opens a targeting screen 360,illustrated in FIG. 19, that offers several thorough solutions to theconflict, discussed in further detail below.

When an object or element is moved using the controls of the targetingscreen 360 in an effort to resolve a conflict, an exact, real-time,transparent replica or “reflection” of the conflicted element isdisplayed. For example, as illustrated in FIG. 15, when the HVAC duct308 and pipe 310 are moved down in order to avoid the conflict with beam302, a duct reflection 318 and pipe reflection 320 are created. Sincepipe reflection 320 would create a new conflict with cable tray 312,pipe 310 will need to be moved further (perhaps below the cable tray312) to completely clear the conflict using this form of reflection.

The other type of reflection is an altered shape, real-time transparentreplica of the conflicted element. The term “altered shape” in thiscontext means that the height, width, length, some combination of thosethree dimensions, or some other shape of the element, has been changedin an attempt to resolve the conflict. For example, if HVAC duct 308 wasfour feet wide and two feet high and conflicted with beam 302 by fourinches, rather than attempt to move duct 308 down (and thereby creatinga conflict with pipe 310, it may have made more sense to change theshape of duct 308 to avoid the conflict with the beam 302. For example,if it was possible to reduce the height of duct 308 by six inches,perhaps by increasing its width to six feet, the conflict with the beam302 would have been avoided without moving pipe 310, assuming increasingthe width of duct 308 by two feet did not create another hard to resolveconflict elsewhere. Alert Resolution Proposal Manager 338 permits theuser to test an altered shape reflection.

As previously indicated, the resolution bubble 322 represents theproposed resolution of the conflict represented by alert bubble 316, buttwo bubbles need not be used to achieve the same effect. For example,resolution bubble 322 need not be used. Rather, the single alert bubble316 could be moved from its original position to the proposed resolutionposition, and turned green automatically when the conflict has beencleared by the movement. Alternatively, alert bubble 316 could bemaintained in its original position, but turn green automatically whenthe proposed resolution clears the conflict, and then includeinformation about the change in distance required to clear the conflictit represents. Obviously, many other types of arrangements could also bepossible.

The graphic illustration of the objects, the conflicts, the conflictdistances, and the reflections enable the user to see that the conflictsdefined by the duct reflection 318 and the pipe reflection 320 can onlybe completely cleared by moving the pipe 310 below the cable/wiring tray312, so as to create sufficient room for the duct 308 to be moved belowthe beam 302. Of course, if any of these proposed resolutions createdconflicts elsewhere in the drawing, those conflicts would be identifiedas well and proposals would be created for their resolution. The processof trying different resolutions and identifying new potential conflictswould continue until a set of proposed resolutions could be defined thatwould clear all of the conflicts without creating new ones that couldnot be resolved.

The conflict identification and resolution features of the presentinvention are powerful new tools in complex CAD system design. In thepast, each designer would be required to look at their conflicts in thedrawing and make changes without knowing whether those changes createdother conflicts with other trades. All of the designers' changes wouldthen be incorporated into the main drawing, all of the new conflictswould again be identified, and the process would start all over. As aresult, each of the designers might be required to go through numerousrevisions and coordination meetings with the other designers in attemptsto clear all of the conflicts. With the tools and features of thepresent invention, all current and possible future conflicts can beresolved during a single conflict resolution coordination meeting.

One of the more powerful tools represented by the Alert ResolutionProposal Manager 338 of FIG. 17 and the targeting screen 360 of FIG. 19is the user's ability to input a clearance distance amount as an“objective” to achieve a resolution. With respect to Manager 338, thisclearance amount can be input as a distance along either direction ofthe X-, Y- or Z-axes, can be based on the dimensional units used in thedrawing, can include reflections of the objects being moved, and caninclude dimensional results of any movement. This clearance distance canalso be structured to include any added distance needed to accommodateinsulation, framing materials or anything else, thereby providing a verypractical end result.

With respect to targeting screen 360 of FIG. 19, the movement controlscan be used in conjunction with the targeting diagram to achieve veryaccurate results. In particular, targeting screen 360 includes theability to create an exact replica of the conflicted items in a separatemodeless drawing 362 that allows the user to view the conflict separateand apart from the clutter of the other objects in the ‘base” drawing.Being modeless, the user can move, zoom in or out or rotate the viewseparate and apart from the base drawing as well. Targeting screen 360reports the specific conflict dimensionally and offers a resolutioncoordinate, including any user specified clearance amount, and as notedworks in conjunction with “target” 364 and a number of colored arrows366 to indicate the point of conflict, the resolution, and the currentconflicted element's location. Naturally, a different type of target anddifferently shaped arrows or other elements could be used in place ofthe items shown to guide the user toward a conflict resolution, andstill achieve the same result.

FIG. 22 illustrates an alternate version of the targeting screen 360shown in FIG. 19. In FIG. 19 as noted above, the targeting screenreports the specific conflict dimensionally and offers a resolutioncoordinate, including any user specified clearance amount working inconjunction with target 364 and a number of colored arrows 366 toindicate the point of conflict, the resolution, and the currentconflicted element's location. In FIG. 22, an alternate version oftargeting screen 360 is shown as targeting screen 3600. Targeting screen3600 provides many of the same features as targeting screen 360, butfurther provides the three-dimensional target diagram 3642 with arrows3662 for the X, Y and Z axes, which provides the user with a convenientthree-dimensional visualization of movements input through the movementcontroller along the three axes. The arrows 3662 can be different colorsto help distinguish them from each other.

Targeting screen 3602 also provides a clearance point section 3682 thatallows the user to manually set clearance points or distances from thecurrent point of a selected object in either direction along the X, Yand Z axes. The user can accept and update the current point to theclearance points selected. In addition, the user can elect to have analert or conflict bubble drawn or shown at the objective point (theproposed new location), and elect to label that bubble with the X, Yand/or Z movement that occurred to get to the objective point, and electto draw or show a line from the conflict point to the objective point.

To further enhance the system of the present invention's ability toidentify and resolve all conflicts in as few meetings as possible, thesystem includes a dynamic collaboration function that enables multipleusers in remote locations to simultaneously and dynamically locate andresolve in real-time all conflicts within a drawing in 3D space. Thecollaboration manager operates in conjunction with Alert Control 330 ofFIG. 16 and has access to the same functions and detailed informationrelated to all conflicts within the drawing, including all of the alertbubbles and their associated data, and the movement controls andfeatures of the Alert Resolution Proposal Manager 338 FIG. 17 and thetargeting screen 360 of FIG. 19. Each of the users, communicating overthe Internet or another data network (and telephonically as well), wouldaccess the collaboration manager and have access to a list of all alert(clash or conflict) IDs. A list of all clashes/conflicts between twotrades (i.e., electrical versus plumbing) would also be made available.

When a user selected a conflict from either list, all of the users wouldbe directed to that conflict. The view they would receive would bedetermined by a virtual camera placed in a position above the problemarea. The virtual camera would be angled to the coordinates of theconflict, with the area of interference in focus. An alert bubble wouldbe placed at the conflict to direct the attention of the users to thatarea. Given bandwidth constraints on the network, it may not bepractical to have all of the users simultaneously sharing access to thesame system and its visual displays. Thus, one user may be given controlof the collaboration manager and the main system while all of the otherusers operate local systems and receive the coordinates for conflictsover the network so they can be maneuvered to the same location and thesame time.

The user with control over the collaboration manager would have accessto its features as well as the features and options illustrated in FIGS.16-19 with respect to conflict identification and resolution. The userwould be provided with specifics about a conflict, its layer within thedrawing, its coordinates, notes/comments, etc., as well as images of theconflict. The movement controls would then be used to move conflictedobjects, as needed to resolve conflicts, and to meet other needs. Theother users would be able to view the movement of the objects, anyreflections that were created, any changes to the alert bubbles, any newalert bubbles, etc. Users would also be able to see the separatemodeless drawing 362 when necessary to help understand and resolve aconflict.

When a user of the collaboration manager accepted responsibility formoving an object in order to resolve a conflict, any action taken bythis user would be recorded to a master file that would be available tothe central coordinator of the design project. The information recorded(gathered from the user's configuration files) would include theproject, the contractor, the conflict, the individuals involved inresolving the conflict, an image of the conflict area, coordinates, adescription of the conflict, and other useful information.Alternatively, a request for information could be generated to anappropriate user that specifies the action that is required of the userto reach a resolution. Comments could be recorded and attached to thealert bubble(s). The project coordinator will then have access to thefile containing all of this information and the ability to review thatinformation in a number of different formats, such as SQL, Excel or atext file.

As previously noted, in the context of the building industry, just aboutevery trade is required to work within and around the frame of thebuilding when doing their designs. The structural units making up theframe must be located accurately in order for a designer to plan HVACducting, plumbing layouts, wiring/cable trays, electrical chases, firesprinkler lines, etc., which all must be built within the building'sframe system. In addition, the framing members provide high strengthanchor and bracing points, so a designer would want to be able to takeadvantage of these points while preparing their design. In moststructural drawings, however, the beam and column lines are all includedon a single layer and are either just plain lines or are custom or AECobjects—rarely are the beams or columns displayed as actual 3D objects(and when they are, they are often drawn in specialized drawing systemsthat require additional conversion and viewing tools to use and view,and which may not be available to the user in question).

In the event any beams or columns are in the form of custom objectswithin a drawing, the system of the present invention can extract thedata that defines the custom objects (effectively grabbing the geometricdata defining the object) and use that data to automatically create 3Dobjects of the beams/columns. This process is most easily carried outwhen the user of the present system has loaded proper object enablersfor the custom objects. An object enabler is software that can be usedto access, display and manipulate object data in applications that aredifferent from the one used to create those objects. If the objectenablers are not available or accessible, however, the present systemcan search for the base point from which an object was created (a commonx, y, z) and use that information to create a 3D version of that object.

The beam and column utilities of the system of the present inventionprovide users with the ability to automatically produce an accurate 3Dmodel of a building frame from 2D line drawings so that designers canquickly and easily locate the primary points of the frame concerned withtheir trade. These utilities can be used in conjunction with theautomatic roof plane and wall features of the system of the presentinvention, which interconnects columns to the top of any exterior wallsto emulate the building's actual roof pitch, and which adds beams/joistsat specific elevations or along the established roof planes, so as toenable a user to design in objects that need to be hung from the roof orbeams/joists.

The Beam Conversion Utility, illustrated by dialog box 500 of FIG. 20,gives users the ability to modify lines that define horizontalstructural members, such as beams and joists (referred to generally as“beams”), as well as metal and wood composition and other attributes.When structural designers use a third party routine to generate lines ina drawing defining a structural member, the routines place a line at thedesired location and then place a block with attributes for the linenearby (called an attribute label block). These attributes, some hiddenand some visible, contain information (typically in Mtext format) aboutthe structural member.

The Beam Conversion Utility collects all of the attribute labels, breaksthem down into simple text (removing Unicode), and reads the text togather information about the beams. To aid the system in finding all ofthe desired attribute block labels and beam lines, the user can instructthe system to search the entire drawing file or to search just a windowselected by the user as defined by Search Area 502. The user can alsodefine a Search Zone 504, which is the rectangular area away from anattribute label block that the system will search (when gathering thebeam lines in a drawing) for a beam line that corresponds to thatattribute label block.

When beams and their attributes are found, the user can select aparticular beam type and all of the beams meeting that type definitionwill then be listed in Beam Definitions Found window 506. There are manydifferent beam types, but some of the most commonly used include thefollowing:

Steel Beam Types

W

S

M

HP

C

MC

WT

ST

MT

Single Angle

Double Angle

Rectangular HSS

Round HSS

Steel Joist Girder Types

G

VG

BG

Steel Joist Types

PARALLEL CHORDS UNDERSLUNG

PARALLEL CHORD SQUARE ENDS

TOP CHORD SINGLE PITCHED UNDERSLUNG

TOP CHORD DOUBLE PITCHED SQUARE ENDS

TOP CHORD OFFSET DOUBLE PITCHED UNDERSLUNG

TOP CHORD OFFSET DOUBLE PITCHED SQUARE ENDS

TOP CHORD SINGLE PITCHED SQUARE ENDS

TOP CHORD DOUBLE PITCHED UNDERSLUNG

GABLED JOIST

BOWSTRING JOIST

Wood Joist Types

TJL

TJLX

TJW

TJS

TJM

TJH

It is important to list all of the beams that fit each type so the usercan make a choice as to which beams should be used to create the 3Dstructure. Certain types and sizes of beams may not be useful to certaintrades for identifying anchor and brace points, so there is no need tospend computing resources and time drawing 3D representations of thosebeams. The Remove Selection button 508 enables the user to remove anybeams that are not desired to be drawn in 3D.

The Current Beam Layer 510 is then used to select a layer within thecurrent drawing where the lines representing all of the selected beamsare to be placed. The user has two options, to select a layer from apop-up dialog box that lists all of the layers of the current drawing,or to pick an object on the desired layer where the lines should beplaced. Once a layer is selected, the user then has a number ofconversion options. Selecting the “3d Beams” box in the ConversionOptions 512 transforms each beam into the actual shape defined by thebeam type letter (W, TJL, G, etc.) in the Beam Definitions Found window506. Selecting the Roof Plane option enables the user to assignelevations (in window 514) to each point of the roof plane and to thenelevate, in 3D or 2D line form, to the angle of the defined roof plane.The window 514 is designed to use the TOS (Top Of Steel) format, withthe top flange or lineal angle of the beam (perpendicular to the Z-axis)as the highest point.

The Beam Definition Count represents the number of beams listed in theBeam Definitions Found 506. The Possible Remaining number represents thetotal number of lines representing beams in the search area (all orwindow). The Convert button 516 causes the system to proceed with thebeam conversion process, applying the option criteria selected by theuser, placing the beams in the layer defined by the user, and drawingthe beams based on the beam type letter. The Manual Convert button 518is available when the Possible Remaining number is greater than “0” andwhen selected, directs the user to a dialog box that zooms to andhighlights selected beams within the drawing so the user can convert anybeams that might have been missed by the Convert routine 516. A beammight be missed and not converted when the text defining the beam ismissing, a beam line is outside of the search zone, or there is a breakin the line representing a single beam.

The 3D Column Utility illustrated by dialog box 600 of FIG. 21, givesusers the ability to modify objects that represent structural columns ina 2D drawing. As with beams, structural designers will typically use athird party routine to generate lines, polylines or circles thatrepresent a column in 2D, or lines with attribute label blocks thatincludes the column size, shape and length (height), or use definedstructural members. Not only will the 3D Column Utility search for theappropriate representations and use the information found to transformthe 2D representations or definitions into 3D columns, the 3D ColumnUtility will use any column height information found for a column in anattribute label block to automatically build a column of the properheight based on that information. The Column Utility will also shapecolumns to match one of the common shapes used in the constructionindustry for steel columns when the drawing database is vague withrespect to shape information.

When the columns in a drawing are formed from polylines and circles, theColumn Conversion Object window 602 utilizes existing polylines orcircles that define a column's shape and prompts the user to select apolyline shape (closed, or origin and endpoints match) for the column.The system then searches the drawing database for the same shape on thesame layer and prepares these shapes for 3D conversion. The Pick Objectbutton 604 prompts the user to select an existing polyline or circle(pre-drawn by a structural designer) representing a column. When theselection is made, the system will then search the drawing database forobjects meeting the same properties of the selected object. When objectsmeeting the search criteria of the selected object are found, the totalnumber is listed in the Conversion Options section 606. The ConversionOptions section also gives the user the option of using thicknessproperty of the drawing CAD system to modify the height of the object orto create 3D solids based on the object's shape and the required height.

An embodiment of the present invention provides a method thatestablishes a roof plane by reading the text, attributes and/or otherdefinitions for a support object in a drawing, such as a column or awall; creating automatically a three dimensional representation of theobject based on that information about the object; placing the object inan exact location that is defined by the centerline of the object andthe centerline of the intersection, or any other information that isrelevant for exactly locating the object; entering the height of theobject automatically from the information about the object, oralternatively, having the information manually entered; repeating theaforementioned steps for as many number of objects present in thedrawing, or necessary for the establishment of a roof plane. Once allthe objects have been established, a roof plane is established that ison top of the objects.

Alternatively, a roof plane can by established by the Elevate By section608, which provides the user the option of entering a desired height forthe column, which is then assigned to all of the selected objects, orelevating the columns to the roof plane, if there is one and if it isdirectly above the selected objects. The user can also create a roofplane by selecting Create Roof Plane button 610. When selected, the useris prompted to pick the points representing the roof. The height orelevation is then entered for each point picked and the roof place iscreated utilizing the picked points and elevations. The Zoom Verifybutton 612 will cause the system to visually zoom to the column found bythe search from the Pick Object option 604. Once there, the user isprompted to verify conversion of that object. The Convert All option 614converts all of the gripped objects utilizing the options selected.

When blocks are used to define columns, the system will search thedrawing for blocks (user defined or dynamic) that contain columndefinitions. The definitions in the blocks are then converted to columnsutilizing the data in these blocks that define the columns. To extractthis data, which is usually in multi-text form, the Unicode will bestripped out to create simple text that can then be read. As with thebeam utility, the attribute label blocks are usually located near theobjects representing the columns. The system will therefore search forpreviously used definitions and attributes that may contain columninformation. When a possible column is found, the user will be promptedto select the attribute containing the information required to transformthe column to 3D. When structural members are identified in the drawingusing industry standard labels, the labels will be read andautomatically converted to appropriate columns.

An embodiment of the present invention makes it possible for the user tocreate three-dimensional representations of objects in a drawing whileonly using two-dimensional drawing objects. Many users find it difficultto visualize and draw objects in three-dimensions in three-dimensionaldrawing programs, but the same users are very comfortable drawing intwo-dimensions. By allowing the user to draw in two-dimensions and tohave the drawing objects automatically converted to three-dimensionalobjects within the same drawing, the user can anticipate and more easilyvisualize and create the desired three-dimensional images. Thiseffectively enables the user to draw in three-dimensions while actuallydrawing in two-dimensions.

Furthermore, in certain embodiments, the systems and methods describedherein can advantageously be implemented using computer software,hardware, firmware, or any combination of software, hardware andfirmware. In certain embodiments, systems are implemented as a number ofsoftware modules that comprise computer executable code for performingthe functions described herein. In certain embodiments, thecomputer-executable code is executed on one or more general purposecomputers. However, a skilled artisan will appreciate, in light of thisdisclosure, that any module that can be implemented using software to beexecuted on a general purpose computer can also be implemented using adifferent combination of hardware, software or firmware. For example,such a module can be implemented completely in hardware using acombination of integrated circuits. Alternatively or additionally, sucha module can be implemented completely or partially using specializedcomputers designed to perform the particular functions described hereinrather than by general purpose computers.

Moreover, certain embodiments of the invention are described withreference to methods, apparatus (systems) and computer program productsthat can be implemented by computer program instructions. These computerprogram instructions can be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing the actsspecified herein to transform data from a first state to a second state.

These computer program instructions can be stored in a computer-readablememory that can direct a computer or other programmable data processingapparatus to operate in a particular manner, such that the instructionsstored in the computer-readable memory produce an article of manufactureincluding instruction means which implement the acts specified herein.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions that execute on the computer or other programmableapparatus provide steps for implementing the acts specified herein.

While certain embodiments of the inventions have been described, theseembodiments have been presented by way of example only, and are notintended to limit the scope of the disclosure. Indeed, the novel methodsand systems described herein may be embodied in a variety of otherforms; furthermore, various omissions, substitutions and changes in theform of the methods and systems described herein may be made withoutdeparting from the spirit of the disclosure. The accompanying claims andtheir equivalents are intended to cover such forms or modifications aswould fall within the scope and spirit of the disclosure.

What is claimed:
 1. A non-transitory computer readable storage mediumcomprising instructions that, when executed on a computing device, causethe computing device to at least create a modeless drawing window withina display of a computer system that includes a replica of at least aportion of a computer-aided design drawing displayed on the computer,the modeless drawing window displayed on the computer simultaneouslywith the drawing, the replica illustrating an exact copy of the portionthe drawing that can be viewed by a user within the modeless drawingwindow independent of the drawing.
 2. The non-transitory computerreadable storage medium as recited in claim 1, wherein the instructionsfurther cause the computing device to at least enable the user to movethe replica within the modeless drawing window independent of thedrawing.
 3. The non-transitory computer readable storage medium asrecited in claim 1, wherein the instructions further cause the computingdevice to at least enable the user to change a magnification or rotationof the replica within the modeless drawing window independent of thedrawing.
 4. The non-transitory computer readable storage medium asrecited in claim 1, wherein the instructions further cause the computingdevice to at least enable the user to edit the replica without changingthe drawing.
 5. The non-transitory computer readable storage medium asrecited in claim 4, wherein the drawing and the replica are comprised ofgraphic objects, and an edit includes adding, deleting, or modifying atleast one graphic object in the replica.
 6. The non-transitory computerreadable storage medium as recited in claim 4, wherein the instructionsfurther cause the computing device to at least enable the user to editthe drawing based on edits made by the user to the replica.
 7. Thenon-transitory computer readable storage medium as recited in claim 1,wherein the instructions further cause the computing device to: enablethe user to select a point of interest within the drawing; and place andcenter the replica around the point of interest within the modelessdrawing window.
 8. The non-transitory computer readable storage mediumas recited in claim 7, wherein the drawing and the replica are comprisedof a plurality of graphic objects, and wherein the instructions furthercause the computing device to at least: contract and expand the replicaaround the point of interest in response to a user input until thereplica contains only one or more desired graphic objects among theplurality of graphic objects that the user wants to view or edit in themodeless drawing window.
 9. The non-transitory computer readable storagemedium as recited in claim 8, wherein the user input to contract andexpand includes the user clicking on and dragging a slider.
 10. Thenon-transitory computer readable storage medium as recited in claim 7,wherein the drawing and the replica are comprised of a plurality ofgraphic objects, and wherein the instructions for enabling the user toselect a point of interest include: enable the user to select an objectfrom the plurality of graphic objects in the drawing; and determine thepoint of interest based on the selected graphic object.
 11. Thenon-transitory computer readable storage medium as recited in claim 1,wherein the instructions further include: enabling the user to specifyat least one clipping plane; and determine the portion of the drawing inthe replica at least in part based on the at least one clipping plane.12. A method for creating a second display of a drawing, the methodcomprising: creating a modeless drawing window within a display of acomputer system that includes a replica of at least a portion of acomputer-aided design drawing displayed on the computer, the modelessdrawing window displayed on the computer simultaneously with thedrawing, the replica illustrating an exact copy of the portion thedrawing that can be viewed by a user within the modeless drawing windowindependent of the drawing.
 13. The method as recited in claim 12, themethod further comprising: enabling the user to move the replica withinthe modeless drawing window independent of the drawing.
 14. The methodas recited in claim 12, the method further comprising: enabling the userto change a magnification or rotation of the replica within the modelessdrawing window independent of the drawing.
 15. The method as recited inclaim 12, the method further comprising: enabling the user to edit thereplica without changing the drawing.
 16. The method as recited in claim15, wherein the drawing and the replica are comprised of graphicobjects, and an edit includes adding, deleting, or modifying at leastone graphic object in the replica.
 17. The method as recited in claim15, the method further comprising: enabling the user to edit the drawingbased on edits made by the user to the replica.
 18. The method asrecited in claim 12, the method further comprising: enabling the user toselect a point of interest within the drawing; and placing and centerthe replica around the point of interest within the modeless drawingwindow.
 19. The method as recited in claim 18, wherein the drawing andthe replica are comprised of graphic objects, and the method furthercomprising: contracting and expanding the replica around the point ofinterest in response to a user input until the replica contains only oneor more desired graphic objects that the user wants to view or edit inthe modeless drawing window.
 20. The method as recited in claim 19,wherein the user input to contract and expand includes the user clickingon and dragging a slider.
 21. The method as recited in claim 18, whereinthe drawing and the replica are comprised of a plurality of graphicobjects, and the method further comprising: enabling the user to selectan object from the plurality of graphic objects in the drawing; anddetermining the point of interest based on the selected graphic object.22. The method as recited in claim 12, the method further comprising:enabling the user to specify at least one clipping plane; anddetermining the portion of the drawing in the replica at least in partbased on the at least one clipping plane.